package com.finance.system.dao;


import com.finance.system.bean.pojo.Menu;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * Created by CBWL on 2017/4/12.
 */
@Component
public interface MenuMapper {

    /**
     *
     * @return
     */
    List<Menu> listAll();
    /**
     *根据角色id 获取所有菜单
     * 角色绑定的 菜单属性返回check 为角色值
     * @param roleId
     * @return
     */
    List<Menu> listCheckByRoleId(Long roleId);

    /**
     * 根据id获取菜单
     * @param id
     * @return
     */
    Menu getById(Long id);

    /**
     * 根据code获取已存在的数量
     * @param code
     * @return
     */
    int countByCode(@Param("code") String code,@Param("state")Integer state);

    /**
     * 根据id获取下级数量
     * @param id
     * @return
     */
    int countLowerLevelById(Long id);

    /**
     * 新增菜单
     * @param menu
     * @return
     */
    int add(Menu menu);

    /**
     * 更新菜单
     * */
    int update(Menu menu);

    /**
     * 删除菜单  状态删除
     * @param id
     * @param uId
     * @return
     */
    int del(@Param("id") Long id, @Param("uId") String uId);

    /**
     * 根据用户编号获取
     * 菜单列表
     * 选中的 checked有值
     * @param usercode
     * @return
     */
    List<Menu> listAllMenusByUsercode(String usercode);

    List<Menu> getByRoleId(Long roleId);

    Menu getBySort(@Param("sort") Integer sort, @Param("pCode") String pCode);

    List<Menu> getMenuByRoleId(@Param("roleId") String id);
}
